home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 38 (1994-02)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).zip
/
MegaDisc 38 (1994-02)(MegaDisc Digital Publishing)(AU)(Disk 2 of 2).adf
/
Programs_2
/
Coat_Of_Arms
/
Coat_of_Arms
(
.txt
)
< prev
next >
Wrap
HyperBook
|
1994-02-05
|
43KB
|
334 lines
'IXdK
TUQUEU
TUQUEU
TUQUEU
TUQUEU
d.BT~
B/* Choice of colour/texture for shield */
/* Get a click on a colour or texture, and clone it to the bin */
/* Remove previous */
t = SearchName(':','Tinct') ; if t ~= '' then call HML_Delete(t)
obj = Initiator() ; double = Clone(obj,'0:') ;a = getName(obj)
/* If it's a colour, just make the sample object bigger.
If a texture, then take the whole picture, and make adjustments
to compensate for its invisible rim. */
dx = 0 ; dy = 0 ; sc = SetClip('texture',a)
if a = 'Plain' then dy = -1
select
when a = 'Vair' then do ; dx = - 15 ; dy = -8 ; end
when a = 'Ermine' then do ; dx = -17; dy = -10 ; end
otherwise
call ScaleToSize(double,64,50)
end
call SetPosition(double,407+dx,81+dy)
new = Relocate(double,':')
/* Put it behind the frame */
toback = ObjectToBack(new) ; oldn = SetName(toback,'Tinct')
TintChoice
/* Add a 'position' to the shield */
shape = GetName(Initiator())
row = GetClickRow('Now click on a colour') ; col = GetColumn()
colour = GetObjectAt(col,row) ; if colour = '' then return
/* Make the patch */
part = Clone(colour,'0:')
if shape = 'Sinister' | shape = 'Pale' | shape = 'Dexter' then
call ScaleToSize(part,22,48 + 2 * (shape = 'Pale'))
else call ScaleToSize(part,65,16 + 2 * (shape = 'Base'))
x=406 ; y = 82 ; dx = 0 ; dy = 0
/* Place the patch */
select
when shape = 'Pale' then dx = 21
when shape = 'Sinister' then dx = 42
when shape = 'Fesse' then dy = 14
when shape = 'Base' then dy = 28
otherwise
end
call SetPosition(part,x+dx,y+dy) ; new = Relocate(part,':')
n = SetName(new,'Part')
new2 = ObjectToFront(SearchName(':','Frame'))
AddPosition
/* Move any part into the shield */
set = arg(1)
dx = 0 ; dy = 0
obj = Initiator() ; n = GetName(obj)
select
when set = 1 then
select
when n = 'bb' | n = 'ee' then dx = 1
when n = 'gg' then dx = -1
when n = 'hh' then do ; dx = -1 ; dy = -1 ; end
otherwise
end
when set = 2 then
select
when n = 'aa' | n = 'bb' | n = 'ff' then do ; dx = 1 ; dy = 1 ; end
when n = 'dd' then dx = -1
when n = 'hh' then dx = 1
otherwise
end
when set = 3 then do
dy = 6
select
when n = 'aa' then dx = 3
when n = 'bb' then dx = 19
otherwise
dx = 16
end
end
when set = 4 then
select
when n = 'aa' then do ; dx = -2 ; dy = -1 ; end
when n = 'bb' then do ; dx = -3 ; dy = -2 ; end
when n = 'cc' | n = 'ee' then do ; dx = -1 ; dy = -1 ; end
when n = 'dd' then dx = -2
when n = 'ff' then do ; dx = 8 ; dy = 4 ; end
otherwise
end
otherwise
end
part = Clone(obj,':')
ol = SetName(part,'Part') ; c = SetActionNone(part)
call SetPosition(part,402+dx,78+dy)
MovePart(page)
/* Copy shield contents to next screen */
page = arg(1)
fr = SearchName('2:','Frame')
if page = 1 then do
tinct = SearchName(':','Tinct')
call NextPage()
if tinct ~= '' then new = Clone(tinct,':')
fr = Clone(fr,':') ; newfr = ObjectToFront(fr)
end
else do
group = CreateGroup()
tinct = SearchName(':','Tinct')
if tinct ~= '' then new = Clone(tinct,group)
part = SearchName(':','Part')
if part ~= '' then do forever
part2 = Clone(part,group) ; part = SearchName('','Part')
if part = '' then leave
end
call NextPage()
frame = SearchName(CurrentPage(),'Frame')
if frame = '' | index(frame,CurrentPage()) = 0 then frame = Clone(fr,group)
new = Relocate(group,':') ; first = Explode(new)
f = ObjectToFront('Frame'())
end
CopyBlock(page)
{/* CleanUp - delete all previous work */
ti = SearchName('2:','Tinct')
if ti ~= '' then call HML_Delete(ti)
type.1 = 'Tinct' ; type.2 = 'Part' ; type.3 = 'Frame'
do t = 1 to 3
substr = type.t
do forever
obj = SearchName('3:',substr)
if obj = '' then leave
call HML_Delete(obj)
end
end
call EndPrompt()
call NextPage()
CleanUp
/* Remove last */
num = NumElements(':')
do i = num to 0 by -1
obj = ObjectNumber(':',i) ; if obj = '' then leave
n = GetName(obj)
if index(n,'Part') ~= 0 then do
call HML_Delete(obj) ; leave ; end
end
RemoveLast
Note1
Tinctures Positions
Ordinaries Partition lines
Differencing Charges
marks
Note2
Coat of Arms
The following screens will show a few
examples of these aspects of heraldry :
Button1
Start
Button2
:CoA_Notes
Notes
Picture1
Ram Disk:
blank
Page1
"Tinct"
"Vair"
Ram Disk:
Tinctures
Note1
Tinctures
Note2
sable gules azure
"Ermine"
Ram Disk:
Tinctures
"Black"
"Red"
"Blue"
"Gold"
"Purple"
"Green"
"White"
Note3
or purpure vert
Drawing9
Drawing10
Note4
argent ermine vair
"Plain"
Button1
call CopyBlock(1)
Next
"Frame"
Ram Disk:
Frame
Page2
Note1
dexter pale sinister
Note2
chief
fesse
Note3
Positions
Drawing1
Button1
call CopyBlock(2)
Next
"Dexter"
"Pale"
"Sinister"
"Chief"
"Fesse"
"Base"
Button2
"Green"
"White"
"Blue"
"Gold"
"Purple"
"Black"
"Red"
"Tinct"
"Frame"
Ram Disk:
Frame
Page3
Note1
Ordinaries
Button1
Button2
call CopyBlock(2)
Next
Note2
bend chevron pile
Note3
cross saltire annulet
call MovePart(1)
Ram Disk:
ordinaries
call MovePart(1)
Ram Disk:
ordinaries
call MovePart(1)
Ram Disk:
ordinaries
call MovePart(1)
Ram Disk:
ordinaries
call MovePart(1)
Ram Disk:
ordinaries
call MovePart(1)
Ram Disk:
ordinaries
Page4
Note1
per saltire per chevron barry
Button1
call CopyBlock(2)
Next
Note2
Partition lines
Button2
Note3
per fesse per bend per pale
call MovePart(2)
Ram Disk:
partitions
call MovePart(2)
Ram Disk:
partitions
call MovePart(2)
Ram Disk:
partitions
call MovePart(2)
Ram Disk:
partitions
call MovePart(2)
Ram Disk:
partitions
call MovePart(2)
Ram Disk:
partitions
Page5
Note1
Collett
AD 1994
Picture1
Ram Disk:
collett
Button1
Note2
Differencing marks
Note3
Charges
Note4
first, second, third, fourth, and fifth sons ...
Drawing1
call MovePart(4)
ARexx:
ordinaries
call MovePart(4)
Ram Disk:
call MovePart(4)
Ram Disk:
call MovePart(4)
Ram Disk:
call MovePart(4)
Ram Disk:
call MovePart(4)
Ram Disk:
amiga
Button2
Restart
call MovePart(3)
Ram Disk:
charges
call MovePart(3)
Ram Disk:
charges
call MovePart(3)
Ram Disk:
charges
call MovePart(3)
Ram Disk:
charges
call MovePart(3)
Ram Disk:
charges
Button3
:Armoury
Armoury
Page6
execute start-qed
Notebook.font
garnet.font
garnet.font